博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JQuery插件iScroll实现下拉刷新,滚动翻页特效
阅读量:4970 次
发布时间:2019-06-12

本文共 4654 字,大约阅读时间需要 15 分钟。

下拉自动加载进行分页的运用越来越多,比起传统的分页该方法分页用户体验更好,布局也更简单了。目前正在使用和学习中……

JQuery插件:iScroll

页面布局:

下拉刷新...
上拉加载更多...

翻页,是通过ajax请求,把页码传入一般处理程序,在一般处理程序中获得分页后的数据返回json数组对象。

下拉刷新:

/**  * 下拉刷新 (自定义实现此方法)  * myScroll.refresh(); // 数据加载完成后,调用界面更新方法  */  function pullDownAction() {   setTimeout(function () {     var el, li, i;    el = document.getElementById('thelist');    //==========================================    $.ajax({     type: "GET",     url: "LoadMore.ashx",     data: { page: generatedCount },     dataType: "json",     success: function (data) {      var json = data;      $(json).each(function () {       li = document.createElement('li');       // li.innerText = 'Generated row ' + (++generatedCount);       li.innerHTML = '';       el.insertBefore(li, el.childNodes[0]);      })     }    });    myScroll.refresh(); //数据加载完成后,调用界面更新方法  Remember to refresh when contents are loaded (ie: on ajax completion)   }, 1000);  // <-- Simulate network congestion, remove setTimeout from production!  }

上拉刷新

function pullUpAction() {   setTimeout(function () {      var el, li, i;    el = document.getElementById('thelist');    //==========================================    $.ajax({     type: "GET",     url: "LoadMore.ashx",     data: { page: generatedCount },     dataType: "json",     success: function (data) {      var json = data;      $(json).each(function () {       li = document.createElement('li');       //  li.innerText = 'Generated row ' + (++generatedCount);       li.innerHTML = ';            el.insertBefore(li, el.childNodes[0]);      })     }    });    //============================================    myScroll.refresh(); // 数据加载完成后,调用界面更新方法 Remember to refresh when contents are loaded (ie: on ajax completion)   }, 1000); // <-- Simulate network congestion, remove setTimeout from production!  }

初始化

/**  * 初始化iScroll控件  */
var myScroll,          pullUpEl, pullUpOffset,          generatedCount = 0;          var imgCont=$('#thelist');          var imgList=$('#thelist li');          var pullUpComponent=$('#pullUp');
function loaded() {   pullDownEl = document.getElementById('pullDown');   pullDownOffset = pullDownEl.offsetHeight;   pullUpEl = document.getElementById('pullUp');   pullUpOffset = pullUpEl.offsetHeight;   myScroll = new iScroll('wrapper', {    scrollbarClass: 'myScrollbar', /* 重要样式 */    useTransition: false,    topOffset: pullDownOffset,    onRefresh: function () {     if (pullDownEl.className.match('loading')) {      pullDownEl.className = '';      pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';     } else if (pullUpEl.className.match('loading')) {      pullUpEl.className = '';      pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载更多...';     }    },    onScrollMove: function () {     if (this.y > 5 && !pullDownEl.className.match('flip')) {      pullDownEl.className = 'flip';      pullDownEl.querySelector('.pullDownLabel').innerHTML = '松手开始更新...';      this.minScrollY = 0;     } else if (this.y < 5 && pullDownEl.className.match('flip')) {      pullDownEl.className = '';      pullDownEl.querySelector('.pullDownLabel').innerHTML = '下拉刷新...';      this.minScrollY = -pullDownOffset;     } else if (this.y < (this.maxScrollY - 5) && !pullUpEl.className.match('flip')) {      pullUpEl.className = 'flip';      pullUpEl.querySelector('.pullUpLabel').innerHTML = '松手开始更新...';      this.maxScrollY = this.maxScrollY;     } else if (this.y > (this.maxScrollY + 5) && pullUpEl.className.match('flip')) {      pullUpEl.className = '';      pullUpEl.querySelector('.pullUpLabel').innerHTML = '上拉加载更多...';      this.maxScrollY = pullUpOffset;     }    },    onScrollEnd: function () {     if (pullDownEl.className.match('flip')) {      pullDownEl.className = 'loading';      pullDownEl.querySelector('.pullDownLabel').innerHTML = '加载中...';      pullDownAction(); // Execute custom function (ajax call?)     } else if (pullUpEl.className.match('flip')) {      pullUpEl.className = 'loading';      pullUpEl.querySelector('.pullUpLabel').innerHTML = '加载中...';      pullUpAction(); // Execute custom function (ajax call?)     }    }   });   setTimeout(function () { document.getElementById('wrapper').style.left = '0'; }, 800);  }  //初始化绑定iScroll控件   document.addEventListener('touchmove', function (e) { e.preventDefault(); }, false);  document.addEventListener('DOMContentLoaded', loaded, false);

 

转载于:https://www.cnblogs.com/jeanneze/p/6945770.html

你可能感兴趣的文章
移动web资源整理
查看>>
ODBC, OLEDB, ADO, ADO.Net的演化简史
查看>>
如何实现div的高度100%填充
查看>>
计算机的分类
查看>>
探索c#之一致性Hash详解
查看>>
android 到底是什么决定了app的名称 application label activity label
查看>>
40026118素数的个数
查看>>
$.parseJSON失效的问题
查看>>
Linux 基础命令
查看>>
Vue的自定义组件之间的数据传递
查看>>
laravel5.2总结--请求
查看>>
web上传文件——python
查看>>
Vue : Expected the Promise rejection reason to be an Error
查看>>
使用单体模式设计原生js插件
查看>>
Java IO 用递归实现目录删除和树形目录展示 Java实现
查看>>
iOS 绘图
查看>>
CnBlogs博文demo演示技巧比较:jsfiddle完胜
查看>>
TPrinter控制打印机
查看>>
设置HTML表格细边框
查看>>
Android自动截屏小脚本
查看>>